Modern computing devices have become ubiquitous tools for personal, business, and social uses. As such, many modern computing devices are capable of connecting to various data networks, including the Internet and corporate intranets, to retrieve and receive data communications over such networks. Oftentimes, a computing device connected to one network needs to communicate with a computing device connected on a different network.
A network interface controller (NIC) (also known as a network interface card, network adapter, LAN adapter, and by similar terms) is a computer hardware component or peripheral that connects a computer to a computer network. A NIC implements the electronic circuitry required to communicate using a specific physical layer and data link layer standard such as Ethernet, Wi-Fi or Token Ring. This provides a base for a full network protocol stack, allowing communication among small groups of computers on the same LAN and large-scale network communications through routable protocols, such as IP.
NICs typically rely on firmware running on silicon, such as non-volatile memory (NVM) or other solid state devices (SSDs) to perform important features of the media access control (MAC) layer and physical (PHY) layer of the OSI model. If a NIC is shipped with a firmware defect, it is often difficult for a customer to update the firmware in the NVM using standard methods. Firmware defects may be compounded exponentially in applications involving data centers and/or cloud servers, where hundreds and even thousands of devices may be affected. In the case of firmware updates, current techniques for updating firmware are largely limited to updating each NIC one at a time using software run locally on a server. Even when firmware updating is scripted, NVM version management and deployment can be very complex.